https://cryptohack.org/courses/intro/enc2/
bytes.fromhex() #將一個十六進制字符串轉換為 bytes 類型
.hex() # 將 bytes 類型的數值轉換為一個十六進制字符串
c='63727970746f7b596f755f77696c6c5f62655f776f726b696e675f776974685f6865785f737472696e67735f615f6c6f747d'
print(bytes.fromhex(c))
crypto{You_will_be_working_with_hex_strings_a_lot}
Hex(Hexadecimal),也就是base16
Hexadecimal: 48 65 6C 6C 6F
Step-by-Step Conversion:
48
(十六進位) → 72
(十進位) → H
(ASCII字符)65
(十六進位) → 101
(十進位) → e
(ASCII字符)6C
(十六進位) → 108
(十進位) → l
(ASCII字符)6C
(十六進位) → 108
(十進位) → l
(ASCII字符)6F
(十六進位) → 111
(十進位) → o
(ASCII字符)Result: 48 65 6C 6C 6F
轉換為 ASCII 為 Hello
。
https://cryptohack.org/courses/intro/enc3/
base64.b64encode() #將bytes類型的二進制數據編碼轉換為 Base64 格式的字符串。
import base64 # 匯入 base64 模組,用於進行 Base64 編碼
s = '72bca9b68fc16ac7beeb8f849dca1d8a783e8acf9679bf9269f7bf' # 加密後的數據
byte_data = bytes.fromhex(s) #轉換後的 bytes 數據
base64_encoded = base64.b64encode(byte_data) # 將byte_data進行 Base64 編碼,轉換為字符串格式
print(base64_encoded)
crypto/Base+64+Encoding+is+Web+Safe
Base64:
0-9
、大寫字母 A-Z
、小寫字母 a-z
、以及符號 "+"
和 "/"
(共64個字符)。"="
作為填充符號。Base64url:
"-"
代替 "+"
,"_"
代替 "/"
。"/"
符號。既然base16、base64都介紹了,那就順便介紹一下base32吧
Base32:
2-7
(6個)和字母 A-Z
(26個),共32個字元。"="
作為填充符號。Base32hex:
0-9
和字母 A-V
(共32個字元)。(和hex同樣使用數字0-9)"="
作為填充符號。嗚呼,終於打完了, 今天又是很趕地發了,來不及勘誤,如果有發現錯誤或想友善交流歡迎留言~